// https://umijs.org/config/
import { defineConfig } from '@umijs/max';
import { join } from 'path';
import defaultSettings from './defaultSettings';
import routes from './routes';

const {NODE_ENV } = process.env;

export default defineConfig({
    //============== umi的一些配置 ===============
  //文件增加hash后缀，处理缓存
  hash: true,
  //配置浏览器兼容
  targets: {
    ie: 11,
  },
  //配置路由表
  routes,
  //问号传参时，可通过query传参
  historyWithQuery: {},
  //标题
  title: '智能工程助手',
  //配置路由模式
  history: {
    type: 'hash',
  },
  //开发环境生成sourceMap，生产环境不生成soureMap
  devtool: NODE_ENV === 'development' ? 'eval' : false,
  //配置图片打包方式，大于10kb单独打包
  inlineLimit: 10000,
  //js的压缩方式
  jsMinifier: 'terser',
  jsMinifierOptions: {},
  //配置打包后资源的导入路径，默认‘/’
  publicPath: NODE_ENV === 'development' ? '/' : '/abc/',

  //主题配置，只有设置为 variable， 才能使用 configProvide 动态设置主色调
  theme: {
    'root-entry-name': 'variable',
  },
  //国际化配置
  ignoreMomentLocale: true,
  
  //配置代理解决跨域
  proxy:{
    '/api':{
      'target':'http://localhost:8080',
      'changeOrigin':true,
      'pathRewrite':{'^/api':''}
    }
  },
  //快速热更新配置,更新时可以保留 state
  fastRefresh: true,  
  //============== 以下都是 max的插件配置 ===============
  //数据流模型
  model: {},
  //数据流全局共享的配置
  initialState: {},
  //布局设置，locale：是否国际化
  layout: {
    locale: true,
    ...defaultSettings,
  },
  //项目中的 moment 替换为 dayjs
  moment2dayjs: {
    preset: 'antd',
    plugins: ['duration'],
  },
  //国际化
  locale: {
    default: 'zh-CN',
    antd: true,
    baseNavigator: true,
  },
  //antd插件
  antd: {},
  //网络请求
  request: {},
  //权限
  access: {},

   // <head> 中额外的 script
  headScripts: [
    // 解决首次加载时白屏的问题
    { src: '/scripts/loading.js', async: true },
  ],
  //================ pro 插件配置 =================
  presets: ['umi-presets-pro'],
  //基于 openapi 的规范生成serve 和mock，能减少很多样板代码
   //https://pro.ant.design/zh-cn/docs/openapi/
  openAPI: [
    // {
    //   requestLibPath: "import { request } from '@umijs/max'",
    //   // schemaPath: "https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json"
    //   schemaPath: join(__dirname, 'oneapi.json'),
    //   mock: false,
    // },
    {
      requestLibPath: "import { request } from '@umijs/max'",
      //schemaPath: 'https://gw.alipayobjects.com/os/antfincdn/CA1dOm%2631B/openapi.json',
      schemaPath: join(__dirname, 'codeTrail.openapi.json'),
      projectName: 'codeTrail',
      mock: true,
    },
  ],
  mfsu: {
    strategy: 'normal',
  },
  esbuildMinifyIIFE: true,
  requestRecord: {},
});
